home *** CD-ROM | disk | FTP | other *** search
/ Inverse 10 / Inverse_10_2002-06-20_Oxygen_Side_A.d64 / z assem 7 - dir < prev   
Text File  |  2023-02-26  |  3KB  |  135 lines

  1.          *= $1000
  2.  
  3. fls{CBM-@}buff = $2000
  4. vec{CBM-@}ef   = $fc
  5.  
  6. ;---------------------------------------
  7. ;Katalog do bufora.
  8. ;In: SEC - pliki *.INV, CLC - wszystkie
  9. ;---------------------------------------
  10. get{CBM-@}dir
  11.          clc
  12.  
  13.          lda #0
  14.          sta fls         ;Licznik
  15.          sta ext{CBM-@}files
  16.          rol a
  17.          sta d{CBM-@}2+1
  18.          ldx #<fls{CBM-@}buff
  19.          ldy #>fls{CBM-@}buff
  20.          stx vec{CBM-@}ef
  21.          sty vec{CBM-@}ef+1
  22.          lda #1
  23.          ldx #<dollar
  24.          ldy #>dollar
  25.          jsr $ffbd       ;SetNam
  26.          lda #1
  27.          ldx #8
  28.          ldy #0
  29.          jsr $ffba       ;SetLfs
  30.          jsr $ffc0
  31.          ldx #1
  32.          jsr $ffc6
  33.          ldy #8          ;Read DiskName
  34.          jsr $ffcf
  35.          dey
  36.          bne *-4
  37.          ldy #0
  38.          jsr $ffcf
  39.          sta dsk{CBM-@}name,y
  40.          iny
  41.          cpy #16
  42.          bne *-9
  43.          jsr $ffcf
  44.          bne *-3
  45. d{CBM-@}1      jsr $ffcf
  46.          jsr $ffcf       ;Jedynki
  47.          lda $90
  48.          bne eod
  49.          jsr $ffcf
  50.          jsr $ffcf       ;Rozmiar
  51.          jsr $ffcf
  52.          cmp #"b"        ;Blocks Free?
  53.          beq eod
  54.          jsr $ffcf
  55.          cmp #$22        ;Pocz.nazwy?
  56.          bne *-5
  57.          ldy #15
  58.          lda #0
  59.          sta (vec{CBM-@}ef),y
  60.          dey
  61.          bpl *-3
  62.          iny
  63.          jsr $ffcf
  64.          cmp #$22        ;Koniec nazwy?
  65.          beq *+12
  66.          sta (vec{CBM-@}ef),y
  67.          iny
  68.          cpy #16
  69.          bne *-12
  70.          jsr $ffcf       ;Koncowy cudz.
  71.          jsr $ffcf       ;Zbedne spacje
  72.          cmp #32
  73.          beq *-5
  74.          cmp #"p"        ;PRG ?
  75.          bne d{CBM-@}4
  76. d{CBM-@}2      lda #0
  77.          beq d{CBM-@}3
  78.          ldy #15         ;Plik *.INV?
  79.          ldx #3
  80.          lda (vec{CBM-@}ef),y
  81.          cmp sign,x
  82.          bne d{CBM-@}4
  83.          dey
  84.          dex
  85.          bpl *-9
  86. d{CBM-@}3      lda vec{CBM-@}ef
  87.          clc
  88.          adc #16
  89.          sta vec{CBM-@}ef
  90.          bcc *+4
  91.          inc vec{CBM-@}ef+1
  92.          inc fls
  93. d{CBM-@}4      jsr $ffcf       ;Czekaj na
  94.          bne *-3         ;koniec linii
  95.          beq d{CBM-@}1
  96. eod
  97.          lda fls
  98.          cmp tab{CBM-@}lenght
  99.          bcc *+9
  100.          sec
  101.          sbc tab{CBM-@}lenght
  102.          sta ext{CBM-@}files
  103.  
  104.          lda #1          ;close
  105.          jsr $ffc3
  106.          jmp $ffcc       ;clrchn
  107.          ;--------
  108. fls      .byte 0
  109. ;---------------------------------------
  110. init{CBM-@}drive
  111.          lda #8
  112.          jsr $ffb1
  113.          lda #$6f
  114.          jsr $ff93
  115.          lda #"i"
  116.          jsr $ffa8
  117.          jmp $ffae
  118. ;---------------------------------------
  119. ; zmienne globalne
  120.  
  121. dsk{CBM-@}name .text "                 "
  122.          .byte 13,0
  123. dollar
  124.          .text "$"
  125. sign
  126.          .text ".inv"
  127. tab{CBM-@}lenght
  128.          .byte 20
  129. ext{CBM-@}files
  130.          .byte 0
  131. files{CBM-@}pos
  132.          .byte 0
  133. ;---------------------------------------
  134.  
  135.